//
//  Readme.h
//  Weibo22
//
//  Created by Apple on 16/12/1.
//  Copyright © 2016年 Apple. All rights reserved.
//
//  --------------- 第十二天 ----------

//  新浪微博数据库表的创建分析
//  -> 复合主键
//  微博id  -> statusid  (主键)123   456
//  微博数据 -> status  , 把字典转成二进制数据数据保存进去
//  用户id  -> userid  用户id (主键)111, 222
//  缓存时间 -> time    插入数据的时间,   用来清除缓存数据


//  继承YYText的步骤
//  1. 把原创微博和转发微博里面的UILabel 改成 YYLabel

    //  -- 文本没有换行  -> 设置最大换行宽度 label.preferredMaxLayoutWidth = ScreenWidth - 2 * StatusItemMargin
    //  -- 使用自己创建的表情富文本没有显示  -> 需要使用YYText提供创建富文本的方法来实现 ->
        //  解决方法
        //  使用YYText方式创建表情富文本
        //  let emoticonAttribuedStr = NSAttributedString.yy_attachmentString(withEmojiImage: image!, fontSize: 14)!

//  2. 显示高亮文字颜色及点击高亮文字的背景色
        //  1. 匹配高亮文字的范围  -> 使用正则
        //  2. 遍历正则的匹配的结果,获取高亮范围,设置高亮范围对应的前景色, 设置点击高亮的背景色(使用YYText提供的方法yy_setTextHighlight)


//  3. 设置点击高亮文字获取其内容设置的闭包
    //  设置高亮文字点击执行的闭包

    //  containerView: 容器视图-> YYLabel
    //  attributedStr        : YYLabel显示的富文本
    //  range       : 点击高亮文字的范围
    //  rect         : 点击高亮文字的区域
    //contentLabel.highlightTapAction = { (containerView, attributedStr, range, rect) in
    //    let result = (attributedStr.string as NSString).substring(with: range)
    //    print(result)
    //    
    //    /// ....业务逻辑处理
    //}




//  --------------- 第十一天 ----------
//  替换富文本报错的分析 -> 解决办法需要倒着替换富文本

{0,3}, {10,3}
// x //@影侠:x


//  ---------------- 第十天 -----------------------

//  滚动表情视图切换对应的表情数据按钮
//  1. 能够监听表情视图的滚动
//  2. 获取表情视图内容的中心点
//  3. 根据内容的中心点获取对应的indexPath
//  4. 通过indexPath对应的section,让其toolbar选中指定按钮



//  表情视图数据结构分析

//  1. 一页(cell)上显示20个表情按钮 -> [Model]
//  2. 每种表情有可能需要多页显示 -> [[Model], [Model]]
//  3. 表情视图需要知道有几种表情 [  [[Model], [Model]] ,  [[Model], [Model]],  [[Model], [Model]],  [[Model], [Model]]  ]


//  ---------------- 第八天 -----------------------
//  时间格式化
//  判断是否是今年
//        判断是否是今天
//                判断是否是1分钟之前
//                    --刚刚
//                 判断是否是1小时之前
//                      --xx分钟前
//                  其它
//                        -xx小时前

//        判断是否是昨天
//             -- 昨天 14:20
//        其它
//             -- 12-05 10:10
//  不是今年
//      -- 2015-10-20 20:20



//  ---------------- 第七天 -----------------------
//  单张图片大小逻辑处理

/*
    1. 如果服务端直接把单张图片大小给我,那么我们直接可以设置这个配图(CollectionView)大小
 
    2. 判断配图(原创微博里面的配图和转发微博里面的配图)如果是单张图片(只有一张图片),那么需要去把这个图片下载下来 
        - 下载图片的时候需要异步下载 -> 需要使用调度组
        - 需要等到图片下载完成以后再去加载微博数据
 
 
    3. 在显示配图数据的时候,判断是否只有一张图片,如果只有一张图片需要在缓存里面加载下载的那张图片,取到图片的大小,设置成为配图的大小
 */



//  ---------------- 第四天 -----------------------
//  OAuth 登录
//  O -> open  开放
//  Auth -> 授权
//  开放的授权协议, 在用户同意'授权'的情况下,可以访问第三方(qq, 微信, 微博)的数据, 只能访问不涉及隐私数据, 相对安全, 因为这个登陆页面是qq或者微信或者微博提供的登陆页面, 第三方的app不知道我们的用户名和密码

//  OAuth登陆授权流程

//  1. 加载第三方(新浪,qq,微信)的登陆页面
//  2. 登录成功以后在用户授权的情况下,给我们一个授权码(code)
//  3. 通过授权码获取accesstoken (令牌)
//  4. 使用accesstoken访问第三方的数据(新浪,qq,微信)


//  cocoapods 删除的步骤

//  1. 把工程里面的关于pod的文件全部删除掉
//  2. 在build Phases 关于pod的这些项目全部删除掉
//  3. Link Binary With Libraries 删除对应的库


//  swift与oc混编

/*
    1. 如果swift想要调用oc的文件,那么需要桥接文件, 需要在桥接文件里面导入oc的头文件
    2. 如果oc想要调用swift的文件, 那么需要导入系统提供的swift的头文件 (工程名-Swift.h)
    3. 如果自己不使用系统给你提供的桥接文件,那么自己创建桥接文件的时候需要设置桥接文件的路径 -> build setting -> brid, 找到了设置桥接文件读取的路径
 
 
 */
